auto merge of #256 : alexcrichton/cargo/bootstrap, r=wycats
authorbors <bors@rust-lang.org>
Sat, 26 Jul 2014 04:21:30 +0000 (04:21 +0000)
committerbors <bors@rust-lang.org>
Sat, 26 Jul 2014 04:21:30 +0000 (04:21 +0000)
commit42decaec5c03fce7c619ab4057699ff23e6c3663
tree3ef4856bbc0ac98b9cca19e72eeb070dda4d4730
parent309bfe614359b6aafad71358bbfbe88b27d21d8b
parent4abf27e7b5c1a00e064db4bbee9dca501a37ccd1
auto merge of #256 : alexcrichton/cargo/bootstrap, r=wycats

This is extracted from #234 for sanity.

Cargo will inevitably pick up more dependencies over time such as flate compression, tarfile management, an external liburl, etc. These dependencies quickly get out of hand when using submodules, and it's much easier to rely on cargo to just build all these projects.

This is strategy is not guaranteed to work 100% of the time as rust's bootstrapping strategy does. The version of rust being used for a snapshot is not locked down, and a snapshot is not necessarily compatible with all versions of rust. In the worse case scenario we can either create a wrapper `rustc` to be compatible with the last snapshot, or we can have an escape hatch to build everything with Makefiles manually.

This transition seems inevitable, however, and it seems prudent to get the process underway sooner rather than later to smooth out the kinks.